package com.neuedu.first;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

public class FanXingTestDriver {
    public static void main(String[] args) {
        test01();
    }

    /**
     * 使用泛型
     * Map接口实现类：HashMap
     */

    private static void test01() {
        Map<String,Object> map0 = new HashMap<>();
        //添加元素
        map0.put("zhangsan", "男");
        map0.put("lisi", "女");
        map0.put("lisi", "男");
        map0.put(null, "女");
        map0.put("wangwu", "男");

        //遍历
        System.out.println("zhangsan："+map0.get("zhangsan"));

        System.out.println("1、将Map集合转换为EntrySet集合进行遍历(增强型for循环):");

        //从map中获取所有的键值对集合（Set结构）
        Set <Map.Entry<String,Object>> entrySet = map0.entrySet();
        //此时map的遍历转换为对EntrySet的遍历（）
        for (Object en : entrySet) {
            //强制类型转换（向下溯型）
            Map.Entry entry = (Map.Entry) en;
            System.out.println(entry.getKey() + ": " + entry.getValue());
        }

        Set<String> setKeys = map0.keySet();

        System.out.println("将Map集合转换为EntrySet集合进行遍历(迭代器):");
        //获取entrySet的迭代器对象
        Iterator<String> it1=setKeys.iterator();
        while (it1.hasNext()){
            String key=it1.next();
            System.out.println(key+": "+map0.get(key));
        }

    }
}